; Music of Electric Wonderland (1986) (Ere)
; Ripped by Megachur the 10/02/2008

	write "ELECTRIW.BIN"

music_date_rip	equ &0a28
music_adr	equ &9000
first_theme	equ 0
last_theme	equ 0	; 0 -> 0

	read "music_header_v1_0.asm"

.l9006 equ $ + 6
.l9004 equ $ + 4
.l9002 equ $ + 2
.l9000
	db #00,#00,#00,#00,#00,#00,#00
.l9007
	ld a,h
	sub d
	ret nz
	ld a,l
	sub e
	ret
;
.play_music
.l900d
;
	ld a,#04
	call #bcad
	cp #81
	jr z,l9040
	ld hl,(l9000)
	ld ix,l9278
	ld a,(hl)
	ld (ix+#07),a
	inc hl
	ld a,(hl)
	ld (ix+#08),a
	inc hl
	ld a,(hl)
	ld (ix+#05),a
	inc hl
	ld de,l92b7
	call l9007
	jr nz,l9037
	ld hl,l9299
.l9037
	ld (l9000),hl
	push ix
	pop hl
	call #bcaa
.l9040
	ld a,#02
	call #bcad
	cp #81
	jr z,l908a
	ld a,(l9006)
	or a
	jr nz,l908a
	ld hl,(l9002)
	ld ix,l9281
	ld e,(hl)
	inc hl
	ld a,(hl)
	or e
	jr nz,l9062
	ld a,#0c
	ld c,#01
	jr l9069
.l9062
	ld a,(l9296)
	ld c,a
	ld a,(l9295)
.l9069
	ld (ix+#01),a
	ld (ix+#02),c
	ld (ix+#03),e
	ld a,(hl)
	ld (ix+#04),a
	inc hl
	ld a,(hl)
	ld (ix+#07),a
	inc hl
	ld a,(hl)
	ld (ix+#08),a
	inc hl
	ld (l9002),hl
	push ix
	pop hl
	call #bcaa
.l908a
	ld a,#01
	call #bcad
	cp #81
	jr z,l90be
	ld a,(l9006)
	or a
	jr nz,l90be
	ld hl,(l9004)
	ld ix,l928a
	ld e,(hl)
	inc hl
	ld a,(hl)
	or e
	ld a,#0c
	jr z,l90aa
	ld a,#0d
.l90aa
	ld (ix+#01),a
	ld (ix+#03),e
	ld a,(hl)
	ld (ix+#04),a
	inc hl
	ld (l9004),hl
	push ix
	pop hl
	call #bcaa
.l90be
	ld hl,(l9002)
	ld de,l9437
	call l9007
	jr nz,l9111
	ld a,#02
	call #bcad
	cp #04
	jr nz,l910c
	ld a,#01
	call #bcad
	cp #04
	jr nz,l910c
	ld hl,l92b7
	ld (l9002),hl
	ld hl,l9437
	ld (l9004),hl
	xor a
	ld (l9006),a
	ld hl,l9299
	ld (l9000),hl
	ld a,#41
	ld (l928a),a
	inc a
	ld (l9281),a
	ld a,#44
	ld (l9278),a
	call #bca7
	ld b,#05
.l9104
	push bc
	call l900d
	pop bc
	djnz l9104
	ret
.l910c
	ld a,#01
	ld (l9006),a
.l9111
	ld a,(l928a)
	cp #41
	ret nz
	ld a,#01
	ld (l928a),a
	inc a
	ld (l9281),a
	ld a,#04
	ld (l9278),a
	ld a,#07
	call #bcb3
	ret
;
.real_init_music
;
	xor a
	ld (l9006),a
	call #bca7
	ld hl,l92b7
	ld (l9002),hl
	ld hl,l9299
	ld (l9000),hl
	ld hl,l9437
	ld (l9004),hl
	ld a,#41
	ld (l928a),a
	inc a
	ld (l9281),a
	ld a,#44
	ld (l9278),a
	ld hl,l9297
	ld a,(hl)
	ld (l9291),a
	inc hl
	ld a,(hl)
	ld (l9292),a
	call #bca7
	ld hl,l918e
	ld b,#08
.l9166
	push bc
	ld a,(hl)
	inc hl
	push hl
	call #bcbc
	pop hl
.l916e
	ld a,(hl)
	cp #80
	inc hl
	jr nz,l916e
	pop bc
	djnz l9166
	ld hl,l921e
	ld b,#05
.l917c
	push bc
	ld a,(hl)
	inc hl
	push hl
	call #bcbf
	pop hl
.l9184
	ld a,(hl)
	cp #80
	inc hl
	jr nz,l9184
	pop bc
	djnz l917c
	ret
.l918e
	db #0b,#02,#01,#10,#01,#10,#ff,#01
	db #00,#00,#00,#00,#00,#00,#00,#00
	db #00,#80,#0c,#00,#00,#00,#00,#00
	db #00,#00,#00,#00,#00,#00,#00,#00
	db #00,#00,#00,#80,#0d,#05,#01,#0d
	db #01,#0b,#ff,#01,#01,#0b,#01,#0b
	db #ff,#01,#01,#0b,#01,#80,#01,#02
	db #01,#10,#01,#11,#ff,#03,#00,#00
	db #00,#00,#00,#00,#00,#00,#00,#80
	db #02,#01,#10,#ff,#07,#00,#00,#00
	db #00,#00,#00,#00,#00,#00,#00,#00
	db #00,#80,#03,#01,#10,#ff,#03,#00
	db #00,#00,#00,#00,#00,#00,#00,#00
	db #00,#00,#00,#80,#04,#01,#04,#fc
	db #18,#00,#00,#00,#00,#00,#00,#00
	db #00,#00,#00,#00,#00,#80,#05,#03
	db #05,#03,#01,#01,#00,#14,#0f,#ff
	db #02,#00,#00,#00,#00,#00,#00,#80
.l921e
	db #01,#00,#00,#00,#00,#00,#00,#00
	db #00,#00,#00,#00,#00,#00,#00,#00
	db #00,#80,#02,#82,#01,#05,#05,#01
	db #fb,#05,#00,#00,#00,#00,#00,#00
	db #00,#00,#00,#80,#03,#83,#01,#02
	db #01,#01,#fc,#01,#01,#02,#01,#00
	db #00,#00,#00,#00,#00,#80,#04,#83
	db #02,#01,#01,#04,#ff,#01,#02,#01
	db #01,#00,#00,#00,#00,#00,#00,#80
	db #05,#82,#04,#01,#03,#04,#ff,#03
	db #00,#00,#00,#00,#00,#00,#00,#00
.l9278 equ $ + 2
	db #00,#80,#44,#0b,#00,#00,#00,#00
.l9281 equ $ + 3
	db #00,#00,#00,#42,#0c,#01,#00,#00
.l928a equ $ + 4
	db #00,#00,#00,#00,#41,#0c,#00,#00
.l9295 equ $ + 7
.l9292 equ $ + 4
.l9291 equ $ + 3
	db #00,#00,#00,#00,#00,#00,#00,#01
.l9299 equ $ + 3
.l9297 equ $ + 1
.l9296
	db #01,#14,#00,#28,#00,#0a,#28,#00
	db #02,#14,#00,#0a,#14,#00,#0a,#3c
	db #00,#02,#14,#00,#0a,#14,#00,#02
	db #14,#00,#0a,#28,#00,#0a,#28,#00
	db #02
.l92b7
	db #de,#01,#14,#00,#92,#01,#14,#00
	db #3e,#01,#14,#00,#92,#01,#14,#00
	db #de,#01,#14,#00,#92,#01,#14,#00
	db #3e,#01,#14,#00,#92,#01,#14,#00
	db #3e,#01,#14,#00,#0c,#01,#14,#00
	db #d4,#00,#14,#00,#0c,#01,#14,#00
	db #3e,#01,#14,#00,#0c,#01,#14,#00
	db #d4,#00,#14,#00,#0c,#01,#14,#00
	db #aa,#01,#14,#00,#66,#01,#14,#00
	db #1c,#01,#14,#00,#66,#01,#14,#00
	db #aa,#01,#14,#00,#66,#01,#14,#00
	db #1c,#01,#14,#00,#66,#01,#14,#00
	db #de,#01,#14,#00,#7c,#01,#14,#00
	db #3e,#01,#14,#00,#7c,#01,#14,#00
	db #de,#01,#14,#00,#7c,#01,#14,#00
	db #3e,#01,#14,#00,#7c,#01,#14,#00
	db #de,#01,#14,#00,#92,#01,#14,#00
	db #3e,#01,#14,#00,#92,#01,#14,#00
	db #de,#01,#14,#00,#92,#01,#14,#00
	db #3e,#01,#14,#00,#92,#01,#14,#00
	db #3e,#01,#14,#00,#0c,#01,#14,#00
	db #d4,#00,#14,#00,#0c,#01,#14,#00
	db #3e,#01,#14,#00,#0c,#01,#14,#00
	db #d4,#00,#14,#00,#0c,#01,#14,#00
	db #aa,#01,#14,#00,#66,#01,#14,#00
	db #1c,#01,#14,#00,#66,#01,#14,#00
	db #aa,#01,#14,#00,#66,#01,#14,#00
	db #1c,#01,#14,#00,#66,#01,#14,#00
	db #7c,#01,#14,#00,#3e,#01,#14,#00
	db #fe,#00,#14,#00,#3e,#01,#14,#00
	db #7c,#01,#14,#00,#3e,#01,#14,#00
	db #fe,#00,#14,#00,#3e,#01,#14,#00
	db #66,#01,#14,#00,#1c,#01,#14,#00
	db #ee,#00,#14,#00,#1c,#01,#14,#00
	db #66,#01,#14,#00,#1c,#01,#14,#00
	db #ee,#00,#14,#00,#1c,#01,#14,#00
	db #3e,#01,#14,#00,#fe,#00,#14,#00
	db #d4,#00,#14,#00,#fe,#00,#14,#00
	db #3e,#01,#14,#00,#fe,#00,#14,#00
	db #d4,#00,#14,#00,#fe,#00,#14,#00
	db #fe,#00,#14,#00,#d4,#00,#14,#00
	db #b2,#00,#14,#00,#d4,#00,#14,#00
	db #fe,#00,#14,#00,#d4,#00,#14,#00
	db #b2,#00,#14,#00,#d4,#00,#14,#00
	db #00,#00,#14,#00,#00,#00,#14,#00
	db #00,#00,#14,#00,#00,#00,#14,#00
	db #00,#00,#14,#00,#00,#00,#14,#00
	db #00,#00,#14,#00,#00,#00,#14,#00
.l9437
	db #92,#01,#c8,#00,#a0,#00,#78,#00
	db #a0,#00,#3e,#01,#92,#01,#de,#01
	db #0c,#01,#86,#00,#6a,#00,#50,#00
	db #6a,#00,#d4,#00,#0c,#01,#3e,#01
	db #66,#01,#d4,#00,#d4,#00,#8e,#00
	db #b2,#00,#1c,#01,#66,#01,#aa,#01
	db #7c,#01,#be,#00,#a0,#00,#78,#00
	db #a0,#00,#3e,#01,#7c,#01,#de,#01
	db #92,#01,#c8,#00,#a0,#00,#78,#00
	db #a0,#00,#3e,#01,#92,#01,#de,#01
	db #0c,#01,#86,#00,#6a,#00,#50,#00
	db #6a,#00,#d4,#00,#0c,#01,#3e,#01
	db #66,#01,#d4,#00,#d4,#00,#8e,#00
	db #b2,#00,#1c,#01,#66,#01,#aa,#01
	db #be,#00,#7f,#00,#be,#00,#6a,#00
	db #be,#00,#5f,#00,#5f,#00,#5f,#00
	db #b3,#00,#77,#00,#b3,#00,#59,#00
	db #b3,#00,#47,#00,#3c,#00,#3c,#00
	db #9f,#00,#6a,#00,#9f,#00,#50,#00
	db #9f,#00,#3f,#00,#35,#00,#35,#00
	db #20,#00,#2a,#00,#20,#00,#2a,#00
	db #20,#00,#2a,#00,#20,#00,#2a,#00
	db #00,#00
	db #00,#00,#00,#00,#00,#00,#00,#00
	db #00,#00,#00,#00,#00,#00,#00,#00
;call #bca1
;jp #bc92
;db #25,#00,#00,#00,#00,#00,#00,#00
;db #00,#00,#00,#00,#00,#00,#00
;
.init_music	; added by Megachur
;
	call real_init_music
	ld hl,evt_bloc
	ld bc,#8100
	ld de,play_music
	jp #bcd7	; call play_music every CRT interrupt
evt_bloc
	db #00,#00,#00,#00,#00,#00
	db #00,#00,#00
;
.game_name
	db "Electric Wonderland",0
.game_year
	db "1986",0
.game_publisher
	db "Ere",0
.music_author
	db "",0
.music_comment
	db "",0

	read "music_end_v1_0.asm"
